unit con_Entidade2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Formulario_Padrao_Consulta, DB, DBTables, dbcgrids, ExtCtrls,
  StdCtrls, TFlatButtonUnit, Buttons, DBCtrls, Mask, Grids, DBGrids;

type
  TfrmConsulta_Entidades = class(TFrmConsulta)
    l_nome: TLabel;
    Label2: TLabel;
    l_codigo: TLabel;
    l_cnpj: TLabel;
    ed_nome: TEdit;
    ed_codigo: TEdit;
    ed_cnpj: TEdit;
    p_ordem: TRadioGroup;
    DBCtrlGrid1: TDBCtrlGrid;
    qr: TQuery;
    qrENT_CODIGO: TStringField;
    qrENT_CNPJ: TStringField;
    qrENT_NOME: TStringField;
    qrCID_NOME: TStringField;
    qrENT_FANTASIA: TStringField;
    qrTelefone: TStringField;
    qrDDD: TStringField;
    qrENT_INSCEST: TStringField;
    DataSource1: TDataSource;
    qryEndereco: TQuery;
    qryEnderecoTIPEND_DESCRICAO: TStringField;
    qryEnderecoTIPEND_CODIGO: TStringField;
    qryEnderecoEND_CODIGO: TStringField;
    qryEnderecoCID_CODIGO: TStringField;
    qryEnderecoEND_ENDERECO: TStringField;
    qryEnderecoEND_BAIRRO: TStringField;
    qryEnderecoEND_CEP: TStringField;
    qryEnderecoEND_FONE: TStringField;
    qryEnderecoEND_FAX: TStringField;
    qryEnderecoCidade: TStringField;
    qrEnd: TQuery;
    qrEndENT_CODIGO: TStringField;
    qrEndTIPEND_CODIGO: TStringField;
    qrEndEND_CODIGO: TStringField;
    qrEndCID_CODIGO: TStringField;
    qrEndEND_ENDERECO: TStringField;
    qrEndEND_BAIRRO: TStringField;
    qrEndEND_CEP: TStringField;
    qrEndEND_FONE: TStringField;
    qrEndEND_FAX: TStringField;
    qrEndCidade: TStringField;
    qrEndEnd_DDD: TStringField;
    qrCid: TQuery;
    qrCidCID_CODIGO: TStringField;
    qrCidPAIS_CODIGO: TStringField;
    qrCidEST_SIGLA: TStringField;
    qrCidCID_NOME: TStringField;
    qrCidCID_DDD: TStringField;
    dsCid: TDataSource;
    Label1: TLabel;
    dbEntCodigo: TDBEdit;
    Label3: TLabel;
    dbCnpj: TDBEdit;
    Label4: TLabel;
    dbRazao: TDBEdit;
    Label6: TLabel;
    dbFantasia: TDBEdit;
    Label9: TLabel;
    dbInscr: TDBEdit;
    Label7: TLabel;
    dbEndereco: TDBEdit;
    dsEndereco: TDataSource;
    Label5: TLabel;
    dbBairro: TDBEdit;
    Label8: TLabel;
    dbCEP: TDBEdit;
    Label10: TLabel;
    dbFone: TDBEdit;
    Label13: TLabel;
    dbCidade: TDBEdit;
    qrEND_FONE: TStringField;
    qrEND_ENDERECO: TStringField;
    qrEND_BAIRRO: TStringField;
    qrEND_CEP: TStringField;
    edTipo: TRadioGroup;
    Label11: TLabel;
    qryEnderecoUF: TStringField;
    qrEndEST_SIGLA: TStringField;
    qrUF: TStringField;
    dbUF: TDBEdit;
    DBEDDD: TDBEdit;
    Label14: TLabel;
    Label12: TLabel;
    dbCPF: TDBEdit;
    qrENT_CPF: TStringField;
    procedure FormActivate(Sender: TObject);
    procedure BtnFecharClick(Sender: TObject);
    procedure p_ordemClick(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ed_cnpjKeyPress(Sender: TObject; var Key: Char);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ed_cnpjKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure ed_codigoKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure ed_nomeKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure DBCtrlGrid1DblClick(Sender: TObject);

  private
    { Private declarations }
    procedure FazConsulta;

  public
    { Public declarations }
    Ent_Codigo: string;
    Ent_Cnpj: string;
    Ent_Nome: string;
    Ent_Tipo: Int64;

  end;

var
  frmConsulta_Entidades: TfrmConsulta_Entidades;
  k: Word;
  s: TShiftState;

implementation

uses Dm, Biblio, clsEntidade, clsEndereco, clsCidade, Cad_Entidade;

var
  Entidade: TEntidade;
  tds: Tdatasource;
  tq: Tquery;
  Endereco: TEndereco;
  Cidade: TCidade;

{$R *.dfm}

procedure TfrmConsulta_Entidades.FormActivate(Sender: TObject);
begin
  inherited;
  tq.DatabaseName := DmInt.db.DatabaseName;
  fazconsulta;
end;

procedure TfrmConsulta_Entidades.BtnFecharClick(Sender: TObject);
begin
  inherited;
  Ent_Codigo := qr.FieldByName('ENT_CODIGO').AsString; //tq.fieldbyname('Ent_Codigo').AsString;
  Ent_Cnpj := qr.FieldByName('ENT_CNPJ').AsString; //tq.fieldbyname('Ent_Cnpj').AsString;
  Ent_Nome := qr.FieldByName('ENT_NOME').AsString; //tq.fieldbyname('Ent_Nome').AsString;
end;

procedure TfrmConsulta_Entidades.FazConsulta;
begin
  qr.Close;
  if (p_ordem.ItemIndex = 0) or (p_ordem.ItemIndex = 3) then begin
    if ed_nome.Text = '' then begin
      Entidade.ConsultarTipo(qr, ' ', edTipo.ItemIndex, p_ordem.ItemIndex);

    end else begin
      Entidade.ConsultarTipo(qr, ed_nome.Text, edTipo.ItemIndex, p_ordem.ItemIndex);

    end;

  end else if p_ordem.ItemIndex = 1 then begin
    if ed_codigo.Text = '' then begin
      Entidade.ConsultarTipo(qr, ' ', edTipo.ItemIndex, p_ordem.ItemIndex);

    end else begin
      ed_codigo.Text := strzero(ed_codigo.Text, 5);
      Entidade.ConsultarTipo(qr, ed_codigo.Text, edTipo.ItemIndex, p_ordem.ItemIndex);

    end;

  end else if p_ordem.ItemIndex = 2 then begin
    if ed_cnpj.Text = '' then begin
      Entidade.ConsultarTipo(qr, ' ', edTipo.ItemIndex, p_ordem.ItemIndex)

    end else begin
      Entidade.ConsultarTipo(qr, ed_cnpj.Text, edTipo.ItemIndex, p_ordem.ItemIndex);

    end;

  end;

  qrEnd.Open;
  qr.open;

end;

procedure TfrmConsulta_Entidades.p_ordemClick(Sender: TObject);
begin
  inherited;
  if (p_ordem.ItemIndex = 0) or (p_ordem.ItemIndex = 3) then begin
    l_nome.Visible := true;
    ed_nome.Visible := true;
    l_codigo.Visible := false;
    ed_codigo.Visible := false;
    l_cnpj.Visible := false;
    ed_cnpj.Visible := false;

    if p_ordem.ItemIndex = 0 then begin
      ed_nome.MaxLength := 40;
    end else begin
      ed_nome.MaxLength := 25;
    end;

  end else if p_ordem.ItemIndex = 1 then begin
    l_nome.Visible := false;
    ed_nome.Visible := false;
    l_codigo.Visible := true;
    ed_codigo.Visible := true;
    l_cnpj.Visible := false;
    ed_cnpj.Visible := false;

  end else if p_ordem.ItemIndex = 2 then begin
    l_nome.Visible := false;
    ed_nome.Visible := false;
    l_codigo.Visible := false;
    ed_codigo.Visible := false;
    l_cnpj.Visible := true;
    ed_cnpj.Visible := true;

  end;

  FazConsulta;

end;

procedure TfrmConsulta_Entidades.FormDestroy(Sender: TObject);
begin
  inherited;
  tds.free;
  tq.free;
  Entidade.free;
end;

procedure TfrmConsulta_Entidades.FormCreate(Sender: TObject);
begin
  inherited;
  tds := TDataSource.create(self);
  tq := Tquery.create(self);
  Entidade := TEntidade.Create;
  Endereco := TEndereco.Create;
  Cidade := TCidade.Create;
  qr.DatabaseName := DmInt.db.DatabaseName;
  qrend.DatabaseName := DmInt.db.DatabaseName;
  qrcid.DatabaseName := DmInt.db.DatabaseName;
  qryendereco.DatabaseName := DmInt.db.DatabaseName;

end;

procedure TfrmConsulta_Entidades.ed_cnpjKeyPress(Sender: TObject; var Key: Char);
begin
  inherited;
  if key = '.' then begin
    Abort;
  end else if not (Key in ['0'..'9', Chr(VK_DELETE), Chr(VK_BACK)]) then begin
    Key := #0;
  end;

end;

procedure TfrmConsulta_Entidades.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  inherited;
  Endereco.Free;
  Cidade.Free;
  qr.close;
  qrEnd.close;
  qrCid.Close;

end;

procedure TfrmConsulta_Entidades.ed_cnpjKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  inherited;
  if key = 12 then begin
    FazConsulta;
  end;
end;

procedure TfrmConsulta_Entidades.ed_codigoKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  inherited;
  if key = 12 then begin
    FazConsulta;
  end;
end;

procedure TfrmConsulta_Entidades.ed_nomeKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  inherited;
  if key = 12 then begin
    FazConsulta;
  end;
end;

procedure TfrmConsulta_Entidades.DBCtrlGrid1DblClick(Sender: TObject);
var
  f: TfrmCad_Entidade;
  k: Word;
  s: TShiftState;

begin
  inherited;
  k := 12;
  s := [];
  ent_tipocad := 1;
  f := TfrmCad_Entidade.Create(self);
  f.edtent_codigo.Text := qrENT_CODIGO.AsString;
  //f.edtent_codigoKeyDown(sender,k,s);
  f.ShowModal;
  f.Free;
end;

end.

